パソコン活用研究ラピュタへの道(アセンブラ、DOS、Windows、旧型PCの活用研究)


エスケープシーケンス

エスケープシーケンスは、ESCコード(1BH)から始まる文字列をスクリーンに送ることにより、スクリーン
を制御することをいいます。
スクリーン制御回りはハードウエアに依存する部分が多く、汎用性のあるプログラムを記述するのが
難しい部分です。エスケープシケンスは、ちょっとしたプログラムで、機種依存しないものを作制したい時
などに使えます。
使用例としては、関連サイトの
(!)シリコンバレー/もぐらたたきなど参照して下さい。

1 エスケープシーケンスドライバの組み込み

NECの旧PC-98シリーズでは、確か基本システムにエスケープシーケンスが組み込まれているので、
エスケープシーケンスドライバというものは存在しないと思います。
DOS/V機ではansi.sysというドライバを組み込む必要があります。

(1) Windows 95/98での組み込み
Cドライブのルートディレクトリにconfig.sysがありますので、そこに
devicehigh=C:\WINDOWS\ansi.sys
という記述をします。
これで、DOSプロンプトを起動するとエスケープシーケンスが使えるようになっているはずです。

(2) Windows 2000/XPの場合
C:\Windows\System32 にconfig.NTがありますので、これに
device=%SystemRoot%\system32\ansi.sys
と記述します。
それから、C:\Windows\System32 にあるCommand.comを起動します。
これでエスケープシーケンスがコマンドプロンプト上で使えるようになっているはずです。

通常にコマンドプロンプトを起動すると、cmd.exeが起動されます。cmd.exeではエスケープシーケンスは
サポートされないようなので、上記のようにして下さい。

2 代表的なエスケープシーケンス
エスケープシーケンス文字列は機種により若干異なることもありますが、代表的なものはほぼ共通です。
以下にPC-98用のエスケープシーケンスの主要なものを列挙します。
DOS/V用でもだいたい同じだと思います。

ESC [y; xH カーソルを(y、x)位置に移動。
BASICのLocate の働き。Turbo-Cの gotoxy と同じ働き
ESC [nA カーソルをn行アップ
ESC [nB カーソルをn行ダウン
ESC [0J カーソル位置から最終行の右端までをクリア
ESC [1J 先頭行の左端からカーソル位置までをクリア
ESC [2J 画面消去 BASICの Cls と同じ働き
ESC [2K カーソルのある行をクリア
ESC [>5h カーソル非表示
ESC [>5l カーソル表示
ESC [s カーソル位置と表示文字の属性をセーブ
ESC [u ESC [sでセーブした内容にカーソルを戻す
ESC [ps;..........;ps m 表示文字の属性を指定。psの値の意味は下のとおり
0 既定値       1 高輝度    2 縦線
4 下線        5 点滅      7 反転
30 黒        18、34 青    17、31 赤
19、35 紫     20、32 緑    22、36 水色
21、33 黄色    23、37 白   40 黒反転
44 青反転      41 赤反転    45 紫反転
42 緑反転      46 水色反転  43 黄色反転
47 白反転 
   
   
   
   

TopPage